package com.tron.dobest.java.tronnio;

import java.nio.IntBuffer;

/**
 * 通过buff的双向操作转换控制，实现非阻塞通道。
 */
public class BasicBuffer {
    public static void main(String[] args) {
        /**
         * buff有很多类型:IntBuff FloatBuff CharBuff DoubleBuff ShortBuff LongBuff ByteBuff
         * 本示例使用intBuff
         */
        //创建一个容量为5个int的buff
        IntBuffer intBuffer = IntBuffer.allocate(5);
        //存入数据
        for (int i = 0; i < intBuffer.capacity(); i++) {
            intBuffer.put(i+1);
        }
        System.out.println("intBuffer中缓存数据个数" + intBuffer.capacity());

        //将buff转换为读,该方法可以操作读写切换
        intBuffer.flip();

        //遍历数据
        while (intBuffer.hasRemaining()) {
            //get方法会过滤为0的数据
            System.out.println(intBuffer.get());
        }
    }
}
